package com.ky.tms.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ky.tms.entity.TmsCost;
import com.ky.tms.exception.PredictableException;
import com.ky.tms.vo.CostFinish;
import com.ky.tms.vo.CostOrders;

import java.math.BigDecimal;
import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author chengkaimao
 * @since 2020-03-24
 */
public interface ITmsCostService extends IService<TmsCost> {


    IPage<TmsCost> dispatchPage(String userName, TmsCost tmsCost, Long limit, Long pages);

    IPage<TmsCost> auditPage(String userName, TmsCost tmsCost, Long limit, Long pages);

    IPage<TmsCost> costReportPage(String userName, TmsCost tmsCost, Long limit, Long pages);

    BigDecimal sumFee(TmsCost tmsCost);

    void costAdd(String userName, TmsCost tmsCost);

    void costDel(String userName, TmsCost tmsCost) throws PredictableException;

    void costUpdate(String userName, TmsCost tmsCost) throws PredictableException;

    void costOrders(String userName, CostOrders costOrders) throws PredictableException;

    void applyCost(String userName, TmsCost tmsCost);

    void auditCost(String userName, List<TmsCost> tmsCosts) throws PredictableException;

    void applyPay(String userName, List<TmsCost> tmsCosts) throws PredictableException;

    void urgentCost(String userName, TmsCost tmsCost) throws PredictableException;

    void finishCost(String userName, CostFinish costFinish) throws PredictableException;

    void rejectCost(TmsCost tmsCost) throws PredictableException;

    void updateAccount(TmsCost tmsCost) throws PredictableException;

}
